// pages/user/user.js
const db = wx.cloud.database()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {},
    hasUserInfo: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },
  async login() {
    // // 判断用户是否已经登录，若已经登录，则调用getUserInfo获取用户最新数据，若未登录，则调用云函数实现登录/注册流程
    // const userId = wx.getStorageSync('userId')

    // if(userId){
    //   // 已登录
    //   this.getUserInfo()
    // }else{

    // }
    const {
      userInfo: {
        avatarUrl,
        nickName
      }
    } = await wx.getUserProfile({
      desc: '用于完善用户信息',
    })
    let {
      result: {
        data
      }
    } = await wx.cloud.callFunction({
      name: 'login',
      data: {
        avatarUrl,
        nickName
      }
    })
    // 将用户信息存入本地
    wx.setStorageSync('userId', data._id)

    // 修改状态
    this.setData({
      userInfo: data,
      hasUserInfo: true
    })
  },
  out() {
    this.setData({
      userInfo: '',
      hasUserInfo: false
    })
    wx.removeStorage({
      key: 'userId',
    })
  },

  // 获取用户最新信息以更新状态
  async getUserInfo() {
    const userId = wx.getStorageSync('userId')
    if (userId) {
      let {
        result: {
          newData: {
            data
          }
        }
      } = await wx.cloud.callFunction({
        name: 'getUserInfo',
        data: {
          userId
        }
      })
      this.setData({
        hasUserInfo: true,
        userInfo: data
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 在页面渲染的时候调用获取用户最新数据
    this.getUserInfo()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})